/*
 * autor: joaquin guzman jimenez
 * fecha: 18 de marzo del 2012
 * comentario: clase listBasico, contiene los análisis de precios básicos de una
 * oferta económicas.
 */
package jgj_tm.basicos;
//importaciones
import java.io.*;
import java.util.ArrayList;
import java.util.Iterator;

public class listBasicos {
    //atributos
    private ArrayList<basico> Basicos;
    private File fileBasicos;
    //constructor
    public listBasicos(String path){
        Basicos=new ArrayList<basico>();
        if(path.isEmpty() || path==null) path="";
        fileBasicos=new File(path+"basicos.dat");
    }//listBasicos constuctor
    //iteradore para manejor de los elementos del arreglo
    public Iterator iterador(){
        return Basicos.iterator();
    }//iterador
    //borrar un insumo de la lista
    public basico borrar(int index){
        return Basicos.remove(index);
    }//borrar
    public boolean borrar(basico bas){
        return Basicos.remove(bas);
    }//borrar
    //insertar un basico en la lista
    public boolean insertar(int index, basico bas){
        boolean valRet=false;
        if(existe(bas)==-1){
            Basicos.add(index, bas);
            valRet=true;
        }//if
        return valRet;
    }//insertar
    //agregar un basico a la lista
    public boolean agragar(basico bas){
        boolean valRet=false;
        if(existe(bas)==-1){
            Basicos.add(bas);
            valRet=true;
        }//if
        return valRet;
    }//agragar
    //editar un basico de la lista
    public boolean cambiar(int index, basico bas){
        boolean valRet=false;
        if(existe(bas)!=-1){
            Basicos.set(index, bas);
            valRet=true;
        }//if
        return valRet;
    }//editar
    //vaciar la lista de basicos
    public void vaciar(){
        Basicos.clear();
    }//vaciar
    //copiar la lista de basicos
    public ArrayList<basico> copiar(){
        return (ArrayList<basico>)Basicos.clone();
    }//copiar
    //localizar un basico en la lista, devuel -1 si no existe
    public int existe(basico ins){
        int valRet=-1;
        if(Basicos.contains(ins)){
            valRet=Basicos.indexOf(ins);
        }//if
        return valRet;
    }//buscar
    //localiza un basico con idbasico sugerido en el parámetro
    public boolean existe(String idbasico){
        boolean valRet=false;
        Iterator iterador=Basicos.iterator();
        basico bas;
        while(iterador.hasNext()){
            bas=(basico)iterador.next();
            if(bas.idbasico.equals(idbasico)){
                valRet=true;
                break;
            }//if
        }//while
        return valRet;
    }//buscar
    //leer un insumos de la lista
    public basico leer(int index){
        return Basicos.get(index);
    }//leer
    //grabar en disco las lista de basicos
    public void grabar() throws IOException{
        FileOutputStream fos=new FileOutputStream(fileBasicos);
        ObjectOutputStream oos=new ObjectOutputStream(fos);
        oos.writeObject(Basicos);
        oos.close();
    }//grabar
    //cargar la lista de los basicos en memorias
    public void cargar() throws IOException, ClassNotFoundException{
        if(fileBasicos.exists()){
            FileInputStream fis=new FileInputStream(fileBasicos);
            ObjectInputStream ois=new ObjectInputStream(fis);
            Basicos=(ArrayList<basico>)ois.readObject();
        }//if
    }//cargar
}//listBasicos
